package com.leaf.u_spring.chapter04;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.DeclareParents;

/**
 * 是一个切面，没有提供前置、后置或环绕通知，而是使用了@DeclareParents注解
 * @DeclareParents注解详解：
 * value属性指定了哪种类型的bean要引入的接口，"+"表示Performance的所有子类型
 * defaultImpl属性指定了引入功能提供实现的类
 * @DeclareParents注解所标注的静态属性指明了要引入了接口
 * 
 * 在Spring应用中把EncoreableIntroducer声明为一个bean，当Spring发现@Aspect注解时会创建一个代理，然后将调用委托给被代理的bean或被引入的实现
 * 
 */
@Aspect
public class EncoreableIntroducer {

	@DeclareParents(value="com.leaf.u_spring.chapter04.Performance+",
			defaultImpl=DefaultEncoreable.class)
	public static Encoreable encoreable;
	
	
	
}
